NEpy LIBRARY DEMO: $batch$

Main author: R Sanchez-Todo

Contributors: (are welcomed)

Neuroelectrics Corporation
Created November 2018
Modified: -

CONTENTS

  1. Description
  2. Set up
  3. Get help
  4. Preprocess a directory

NOTE: Make sure you have gone through NEpy demo 1-Frida before starting with this one, it will help!

1. Description

`batch` is a funciton which you input a directory and it performs a Frida test for each of the files available. Such files have to be in any of these formats: `.easy`, `.easy.gz`, `.nedf` with a corresponding `.info` file if available. For each of the files, `batch` performs the following: ``` f = Frida(filepath, author=author, parameters=parameters) f.plotEEG() f.plotPSD() f.QC() f.preprocess(pipeline) f.QC() f.plotEEG() f.plotPSD() ```

2. Set up

When runnign the next cell, three input boxes are going to appear asking for the necessary data to set up:

  • Your name or ID. Example: R. Sanchez-Todo

  • The path where you have stored the NEpy repository. Copy paste the path into that box. Example: C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1.

  • The path where you have stored the file(s) you want to process with batch (.easy, .easy.gz, .info). Example: C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata

In [5]:
author = input('\033[1mUser name:\033[0m \n')
nepypath = input('\033[1mNEpy repository path:\033[0m \n ')
datapath = input('\033[1mData path:\033[0m \n ')

import sys
import os
import time
sys.path.append(nepypath)
from nepy.frida.frida import Frida
from nepy.frida.batch import processDirectory

print('\n')
%load_ext autoreload
%autoreload 2
print("______________________________________________")
print ("\nNotebook started:", time.strftime("%Y-%m-%d %H:%M"))
print("\nData located in this folder:",'\033[93m', datapath, '\033[0m')
os.listdir(datapath)
User name: 
Roser
NEpy repository path: 
 C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1
Data path: 
 C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload
______________________________________________

Notebook started: 2018-11-08 11:52

Data located in this folder:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata 
Out[5]:
['20170807135459_W012_V1_EYC.easy.gz',
 '20170807135459_W012_V1_EYC.info',
 '20170807135459_W012_V1_EYC_noinfo_s.easy.gz',
 'test_file.txt']

3. Get help

Don't know how to deal with batch? No worries, ask for help!

The help function (similar to MATLAB) will print a description and an exaple of use of the batch function.

In [3]:
help(processDirectory)
Help on function processDirectory in module nepy.frida.batch:

processDirectory(datapath, author='anonymous', pipeline=None, parameters=None)
    Process all .easy or .easy.gz files in data's directory using Frida.
    :param datadir: directory of the folder containing the data.
    :param author: ('anonymous') user.
    :param pipeline: (['referenceData', 'detrendData', 'notch', 'filterDataA2B'])
    :param parameters:
    :return: list of processed and skipped files.
    
    Example of use:
    >>> [processed, skipped] = processDirectory(datapath)


4. Preprocess a directory

It is really simple! You just need to copy the following line:

[processed, skipped] = processDirectory(datapath)

The arguments pipeline and parameters (see help(Frida)) are optional.

In [6]:
parameters = {
    'time_span': 60,
    'grab_seconds': 10.,
    'detrend_time': 10.,
    'QCthreshold': 75.,
    'QCmax': 30.,
    'fline': 60.,
    'Q': 30.,
    'fL': 2.,
    'fH': 45.,
    'order': 5,
    'reference_electrodes': ['Cz'],
    'offset_limit': 1.,
    'std_limit': 15.
}

[processed, skipped] = processDirectory(datapath, parameters=parameters)
Running with these arguments: {'parameters': {'time_span': 60, 'grab_seconds': 10.0, 'detrend_time': 10.0, 'QCthreshold': 75.0, 'QCmax': 30.0, 'fline': 60.0, 'Q': 30.0, 'fL': 2.0, 'fH': 45.0, 'order': 5, 'reference_electrodes': ['Cz'], 'offset_limit': 1.0, 'std_limit': 15.0}, 'pipeline': None, 'author': 'anonymous', 'datapath': 'C:\\Users\\roser.sanchez\\Documents\\Git\\NEpy_v0.1\\sampledata'}



##########################################################################

         Processing C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC.easy.gz
##########################################################################


Found the file: C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC.easy.gz
Initializing in file path:   C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC.easy.gz
Processing:  20170807135459_W012_V1_EYC
Filenameroot:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC
Extension:  easy.gz
 
_______________________________________________________________
Reading info file ...
Step Details
Info Version: 1.2
Step name: EYC
StartDate (firstEEGtimestamp): 1502128490843
Device class: ENOBIO
Communication type: WiFi
Device ID: NE-Wifi(00:07:80:0D:71:2F)
Software's version: NIC v2.0.5c
Firmware's version: 3018
Operative system: Windows 7
SDCard Filename: NONE
Additional channel: NONE

EEG Settings
Total number of channels: 32
Number of EEG channels: 32
Number of records of EEG: 180000
EEG sampling rate: 500 Samples/second
EEG recording configured duration (s): 360
Number of packets lost: 0
Line filter status: OFF
FIR filter status: OFF
EOG correction filter status: OFF
Reference filter status: OFF
EEG units: nV
EEG montage: 
	Channel 1: P7
	Channel 2: P4
	Channel 3: Cz
	Channel 4: Pz
	Channel 5: P3
	Channel 6: P8
	Channel 7: O1
	Channel 8: O2
	Channel 9: T8
	Channel 10: F8
	Channel 11: C4
	Channel 12: F4
	Channel 13: Fp2
	Channel 14: Fz
	Channel 15: C3
	Channel 16: F3
	Channel 17: Fp1
	Channel 18: T7
	Channel 19: F7
	Channel 20: Oz
	Channel 21: PO4
	Channel 22: FC6
	Channel 23: FC2
	Channel 24: AF4
	Channel 25: CP6
	Channel 26: CP2
	Channel 27: CP1
	Channel 28: CP5
	Channel 29: FC1
	Channel 30: FC5
	Channel 31: AF3
	Channel 32: PO3
Accelerometer data: ON
.info file found and read.

_______________________________________________________________
Reading: 20170807135459_W012_V1_EYC . easy.gz 
 
Number of channels detected: 32
First sample recorded : 2017-08-07 19:54:50 

 L0 raw data data in uV
                  P7             P4             Cz             Pz  \
count  179999.000000  179999.000000  179999.000000  179999.000000   
mean     4478.283719    6210.156891   12956.180028   -3557.216129   
std       572.252171    1907.442899     759.662855     182.497273   
min      3833.437000    3102.350000   11754.800000   -3851.986000   
25%      3952.908500    4578.209000   12275.172000   -3678.179000   
50%      4298.019000    5975.247000   12879.516000   -3629.208000   
75%      4965.472000    7882.786000   13641.025000   -3445.291000   
max      5768.538000    9842.778000   14427.472000   -3024.244000   

                  P3             P8             O1             O2  \
count  179999.000000  179999.000000  179999.000000  179999.000000   
mean      907.838594   -8377.815393    6694.129703    1946.753563   
std       381.778994     187.208253     263.233711     534.165497   
min       452.280000   -8683.825000    6236.029000    1181.078000   
25%       582.122000   -8537.102000    6519.985000    1465.511000   
50%       730.466000   -8416.510000    6666.565000    1833.391000   
75%      1179.027000   -8248.473000    6827.164000    2428.674000   
max      1877.498000   -7867.957000    7490.778000    3067.922000   

                  T8             F8      ...                 FC1  \
count  179999.000000  179999.000000      ...       179999.000000   
mean    -6770.991911    7316.049151      ...         4372.674656   
std       192.376026     439.992428      ...          688.971297   
min     -7060.147000    6732.798000      ...         3222.942000   
25%     -6946.183000    6925.965000      ...         3709.054000   
50%     -6826.496000    7170.582000      ...         4418.659000   
75%     -6624.174000    7707.262000      ...         5018.520000   
max     -6237.221000    8310.462000      ...         5452.728000   

                 FC5            AF3            PO3             ax  \
count  179999.000000  179999.000000  179999.000000  179999.000000   
mean      972.652364    9447.678713    1620.292330    -139.678304   
std      1501.874396     361.537422     252.725304     187.429514   
min     -1198.434000    8921.195000    1176.738000   -4932.000000   
25%      -319.671000    9111.071000    1422.596000    -264.000000   
50%       735.712000    9355.307000    1570.272000    -107.000000   
75%      2291.727000    9744.120000    1845.407000       0.000000   
max      3874.397000   10354.138000    2156.400000    5001.000000   

                  ay             az   markers     unix_time             t  
count  179999.000000  179999.000000  179999.0  1.799990e+05  179999.00000  
mean     8294.956972   -3850.054584       0.0  1.502129e+12     179.99800  
std       215.319884     367.595051       0.0  1.039228e+05     103.92276  
min         0.000000   -5275.000000       0.0  1.502128e+12       0.00000  
25%      8178.000000   -4089.000000       0.0  1.502129e+12      89.99900  
50%      8257.000000   -3932.000000       0.0  1.502129e+12     179.99800  
75%      8414.000000   -3628.000000       0.0  1.502129e+12     269.99700  
max      9365.000000       0.000000       0.0  1.502129e+12     359.99600  

[8 rows x 38 columns]
Plotting EEG channels after this pipeline:
1 . Object created: 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC
Plotting PSDs after this pipeline:
1 . Object created: 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC

Channel 1: P7, STD= 156.6 uV
Channel 2: P4, STD= 397.3 uV
Channel 3: Cz, STD= 159.0 uV
Channel 4: Pz, STD=  39.2 uV
Channel 5: P3, STD= 126.5 uV
Channel 6: P8, STD=  83.5 uV
Channel 7: O1, STD=  60.9 uV
Channel 8: O2, STD= 119.0 uV
Channel 9: T8, STD=  84.3 uV
Channel 10: F8, STD= 117.6 uV
Channel 11: C4, STD= 159.8 uV
Channel 12: F4, STD=  82.8 uV
Channel 13: Fp2, STD= 145.3 uV
Channel 14: Fz, STD=  99.9 uV
Channel 15: C3, STD= 315.0 uV
Channel 16: F3, STD= 121.0 uV
Channel 17: Fp1, STD= 194.1 uV
Channel 18: T7, STD= 117.4 uV
Channel 19: F7, STD=  75.3 uV
Channel 20: Oz, STD=  85.7 uV
Channel 21: PO4, STD=  62.5 uV
Channel 22: FC6, STD= 160.0 uV
Channel 23: FC2, STD= 172.2 uV
Channel 24: AF4, STD= 150.0 uV
Channel 25: CP6, STD= 306.4 uV
Channel 26: CP2, STD= 148.4 uV
Channel 27: CP1, STD= 138.3 uV
Channel 28: CP5, STD= 229.0 uV
Channel 29: FC1, STD=  57.9 uV
Channel 30: FC5, STD= 291.3 uV
Channel 31: AF3, STD= 128.0 uV
Channel 32: PO3, STD=  60.0 uV
--------QUALITY CHECK--------
Current log is:
['Object created: 2018-11-08 11:52']

Checking Quality of data with epoch length of  10.0  seconds.
Amplitude threshold (uV)=  75.0
STD limit of (uV)       =  30.0
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =    5.4 mV(*) / STD =  156.6 uV (*)
Channel P4    : Offset =    9.1 mV(*) / STD =  397.3 uV (*)
Channel Cz    : Offset =   14.1 mV(*) / STD =  159.0 uV (*)
Channel Pz    : Offset =   -3.7 mV(*) / STD =   39.2 uV (*)
Channel P3    : Offset =    1.6 mV(*) / STD =  126.5 uV (*)
Channel P8    : Offset =   -8.1 mV(*) / STD =   83.5 uV (*)
Channel O1    : Offset =    6.4 mV(*) / STD =   60.9 uV (*)
Channel O2    : Offset =    2.8 mV(*) / STD =  119.0 uV (*)
Channel T8    : Offset =   -6.5 mV(*) / STD =   84.3 uV (*)
Channel F8    : Offset =    8.1 mV(*) / STD =  117.6 uV (*)
Channel C4    : Offset =    6.8 mV(*) / STD =  159.8 uV (*)
Channel F4    : Offset =    7.8 mV(*) / STD =   82.8 uV (*)
Channel Fp2   : Offset =    6.9 mV(*) / STD =  145.3 uV (*)
Channel Fz    : Offset =    3.7 mV(*) / STD =   99.9 uV (*)
Channel C3    : Offset =   -0.2 mV    / STD =  315.0 uV (*)
Channel F3    : Offset =    8.2 mV(*) / STD =  121.0 uV (*)
Channel Fp1   : Offset =   14.7 mV(*) / STD =  194.1 uV (*)
Channel T7    : Offset =    4.0 mV(*) / STD =  117.4 uV (*)
Channel F7    : Offset =    3.0 mV(*) / STD =   75.3 uV (*)
Channel Oz    : Offset =    4.6 mV(*) / STD =   85.7 uV (*)
Channel PO4   : Offset =   -0.2 mV    / STD =   62.5 uV (*)
Channel FC6   : Offset =   13.5 mV(*) / STD =  160.0 uV (*)
Channel FC2   : Offset =    4.5 mV(*) / STD =  172.2 uV (*)
Channel AF4   : Offset =   23.7 mV(*) / STD =  150.0 uV (*)
Channel CP6   : Offset =   -4.5 mV(*) / STD =  306.4 uV (*)
Channel CP2   : Offset =   17.8 mV(*) / STD =  148.4 uV (*)
Channel CP1   : Offset =   16.1 mV(*) / STD =  138.3 uV (*)
Channel CP5   : Offset =   -2.6 mV(*) / STD =  229.0 uV (*)
Channel FC1   : Offset =    3.4 mV(*) / STD =   57.9 uV (*)
Channel FC5   : Offset =    3.3 mV(*) / STD =  291.3 uV (*)
Channel AF3   : Offset =   10.0 mV(*) / STD =  128.0 uV (*)
Channel PO3   : Offset =    2.0 mV(*) / STD =   60.0 uV (*)
Minutes of data: 1.0
Maxtimeskips:  5
 Found 48 bad channel-epochs out of 160, or 30.0%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 1    (or 0.6%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 3    (or 1.9%)
channel 10  /    C4, N= 1    (or 0.6%)
channel 11  /    F4, N= 2    (or 1.2%)
channel 12  /   Fp2, N= 5    (or 3.1%)
channel 13  /    Fz, N= 5    (or 3.1%)
channel 14  /    C3, N= 1    (or 0.6%)
channel 15  /    F3, N= 4    (or 2.5%)
channel 16  /   Fp1, N= 5    (or 3.1%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 1    (or 0.6%)
channel 19  /    Oz, N= 0    (or 0.0%)
channel 20  /   PO4, N= 0    (or 0.0%)
channel 21  /   FC6, N= 1    (or 0.6%)
channel 22  /   FC2, N= 1    (or 0.6%)
channel 23  /   AF4, N= 5    (or 3.1%)
channel 24  /   CP6, N= 1    (or 0.6%)
channel 25  /   CP2, N= 1    (or 0.6%)
channel 26  /   CP1, N= 1    (or 0.6%)
channel 27  /   CP5, N= 0    (or 0.0%)
channel 28  /   FC1, N= 4    (or 2.5%)
channel 29  /   FC5, N= 1    (or 0.6%)
channel 30  /   AF3, N= 5    (or 3.1%)
channel 31  /   PO3, N= 0    (or 0.0%)

---------QC COMPLETE---------
---------PREPROCESSING---------
Pipeline:
['resetEEG', 'rereferenceData', 'detrendData', 'notch', 'bandpassfilter']
-------------------------------
Step 1 :  resetEEG  ...
-------------------------------
 
Step 2 :  rereferenceData  ...
Reference electrodes:  ['Cz']
-------------------------------
 
Step 3 :  detrendData  ...
Every  10.0  seconds
-------------------------------
 
Step 4 :  notch  ...
Power line frequency:  60.0
Notch Q-factor:  30.0
-------------------------------
 
Step 5 :  bandpassfilter  ...
Cutoff frequencies:  2.0 - 45.0
-------------------------------
 
Done: Updated Log:  ['Object created: 2018-11-08 11:52', 'EEG reset on 2018-11-08 11:52', 'Reference to: Cz on 2018-11-08 11:52', 'Detrend data every 10.0 s on 2018-11-08 11:52', 'Notch at 60.0 with Q=30.0 on 2018-11-08 11:52', 'Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52']
 

--------QUALITY CHECK--------
Current log is:
['Object created: 2018-11-08 11:52', 'EEG reset on 2018-11-08 11:52', 'Reference to: Cz on 2018-11-08 11:52', 'Detrend data every 10.0 s on 2018-11-08 11:52', 'Notch at 60.0 with Q=30.0 on 2018-11-08 11:52', 'Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52']

Checking Quality of data with epoch length of  10.0  seconds.
Amplitude threshold (uV)=  75.0
STD limit of (uV)       =  30.0
Offset limit:  1.0
STD limit:  15.0
Channel P7    : Offset =   -0.0 mV    / STD =    5.2 uV  
Channel P4    : Offset =   -0.0 mV    / STD =    4.4 uV  
Channel Cz    : Offset =    0.0 mV    / STD =    0.0 uV  
Channel Pz    : Offset =   -0.0 mV    / STD =    3.8 uV  
Channel P3    : Offset =    0.0 mV    / STD =    4.3 uV  
Channel P8    : Offset =   -0.0 mV    / STD =    5.0 uV  
Channel O1    : Offset =   -0.0 mV    / STD =    6.7 uV  
Channel O2    : Offset =   -0.0 mV    / STD =    5.8 uV  
Channel T8    : Offset =   -0.0 mV    / STD =    4.6 uV  
Channel F8    : Offset =    0.0 mV    / STD =    4.8 uV  
Channel C4    : Offset =    0.0 mV    / STD =    3.8 uV  
Channel F4    : Offset =    0.0 mV    / STD =    4.6 uV  
Channel Fp2   : Offset =    0.0 mV    / STD =   13.0 uV  
Channel Fz    : Offset =    0.0 mV    / STD =    4.5 uV  
Channel C3    : Offset =   -0.0 mV    / STD =    3.4 uV  
Channel F3    : Offset =    0.0 mV    / STD =    5.0 uV  
Channel Fp1   : Offset =    0.0 mV    / STD =   16.1 uV (*)
Channel T7    : Offset =   -0.0 mV    / STD =    4.4 uV  
Channel F7    : Offset =   -0.0 mV    / STD =    5.1 uV  
Channel Oz    : Offset =   -0.0 mV    / STD =    5.6 uV  
Channel PO4   : Offset =   -0.0 mV    / STD =    5.4 uV  
Channel FC6   : Offset =    0.0 mV    / STD =    3.8 uV  
Channel FC2   : Offset =    0.0 mV    / STD =    2.7 uV  
Channel AF4   : Offset =    0.0 mV    / STD =    7.6 uV  
Channel CP6   : Offset =   -0.0 mV    / STD =    4.5 uV  
Channel CP2   : Offset =   -0.0 mV    / STD =    2.9 uV  
Channel CP1   : Offset =   -0.0 mV    / STD =    3.0 uV  
Channel CP5   : Offset =   -0.0 mV    / STD =    4.4 uV  
Channel FC1   : Offset =    0.0 mV    / STD =    2.6 uV  
Channel FC5   : Offset =   -0.0 mV    / STD =    4.2 uV  
Channel AF3   : Offset =    0.0 mV    / STD =    8.4 uV  
Channel PO3   : Offset =   -0.0 mV    / STD =    5.0 uV  
Minutes of data: 1.0
Maxtimeskips:  5
 Found 3 bad channel-epochs out of 160, or 1.9%.
                

Bad channel-epochs per channel:
channel 0   /    P7, N= 0    (or 0.0%)
channel 1   /    P4, N= 0    (or 0.0%)
channel 2   /    Cz, N= 0    (or 0.0%)
channel 3   /    Pz, N= 0    (or 0.0%)
channel 4   /    P3, N= 0    (or 0.0%)
channel 5   /    P8, N= 0    (or 0.0%)
channel 6   /    O1, N= 0    (or 0.0%)
channel 7   /    O2, N= 0    (or 0.0%)
channel 8   /    T8, N= 0    (or 0.0%)
channel 9   /    F8, N= 0    (or 0.0%)
channel 10  /    C4, N= 0    (or 0.0%)
channel 11  /    F4, N= 0    (or 0.0%)
channel 12  /   Fp2, N= 1    (or 0.6%)
channel 13  /    Fz, N= 0    (or 0.0%)
channel 14  /    C3, N= 0    (or 0.0%)
channel 15  /    F3, N= 0    (or 0.0%)
channel 16  /   Fp1, N= 1    (or 0.6%)
channel 17  /    T7, N= 0    (or 0.0%)
channel 18  /    F7, N= 0    (or 0.0%)
channel 19  /    Oz, N= 0    (or 0.0%)
channel 20  /   PO4, N= 0    (or 0.0%)
channel 21  /   FC6, N= 0    (or 0.0%)
channel 22  /   FC2, N= 0    (or 0.0%)
channel 23  /   AF4, N= 0    (or 0.0%)
channel 24  /   CP6, N= 0    (or 0.0%)
channel 25  /   CP2, N= 0    (or 0.0%)
channel 26  /   CP1, N= 0    (or 0.0%)
channel 27  /   CP5, N= 0    (or 0.0%)
channel 28  /   FC1, N= 0    (or 0.0%)
channel 29  /   FC5, N= 0    (or 0.0%)
channel 30  /   AF3, N= 1    (or 0.6%)
channel 31  /   PO3, N= 0    (or 0.0%)

---------QC COMPLETE---------
Plotting EEG channels after this pipeline:
1 . Object created: 2018-11-08 11:52
2 . EEG reset on 2018-11-08 11:52
3 . Reference to: Cz on 2018-11-08 11:52
4 . Detrend data every 10.0 s on 2018-11-08 11:52
5 . Notch at 60.0 with Q=30.0 on 2018-11-08 11:52
6 . Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC
Plotting PSDs after this pipeline:
1 . Object created: 2018-11-08 11:52
2 . EEG reset on 2018-11-08 11:52
3 . Reference to: Cz on 2018-11-08 11:52
4 . Detrend data every 10.0 s on 2018-11-08 11:52
5 . Notch at 60.0 with Q=30.0 on 2018-11-08 11:52
6 . Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC

Channel 1: P7, STD=   5.2 uV
Channel 2: P4, STD=   4.4 uV
Channel 3: Cz, STD=   0.0 uV
Channel 4: Pz, STD=   3.8 uV
Channel 5: P3, STD=   4.3 uV
Channel 6: P8, STD=   5.0 uV
Channel 7: O1, STD=   6.7 uV
Channel 8: O2, STD=   5.8 uV
Channel 9: T8, STD=   4.6 uV
Channel 10: F8, STD=   4.8 uV
Channel 11: C4, STD=   3.8 uV
Channel 12: F4, STD=   4.6 uV
Channel 13: Fp2, STD=  13.0 uV
Channel 14: Fz, STD=   4.5 uV
Channel 15: C3, STD=   3.4 uV
Channel 16: F3, STD=   5.0 uV
Channel 17: Fp1, STD=  16.1 uV
Channel 18: T7, STD=   4.4 uV
Channel 19: F7, STD=   5.1 uV
Channel 20: Oz, STD=   5.6 uV
Channel 21: PO4, STD=   5.4 uV
Channel 22: FC6, STD=   3.8 uV
Channel 23: FC2, STD=   2.7 uV
Channel 24: AF4, STD=   7.6 uV
Channel 25: CP6, STD=   4.5 uV
Channel 26: CP2, STD=   2.9 uV
Channel 27: CP1, STD=   3.0 uV
Channel 28: CP5, STD=   4.4 uV
Channel 29: FC1, STD=   2.6 uV
Channel 30: FC5, STD=   4.2 uV
Channel 31: AF3, STD=   8.4 uV
Channel 32: PO3, STD=   5.0 uV

##########################################################################

         Processing C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s.easy.gz
##########################################################################


Found the file: C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s.easy.gz
Initializing in file path:   C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s.easy.gz
Processing:  20170807135459_W012_V1_EYC_noinfo_s
Filenameroot:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s
Extension:  easy.gz
 
_______________________________________________________________
Reading info file ...
 Warning! .info file not found! Using standard values... 
Reading  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s.easy.gz to get numchannels....

numchannels ....... 32
_______________________________________________________________
Reading: 20170807135459_W012_V1_EYC_noinfo_s . easy.gz 
 
Number of channels detected: 32
First sample recorded : 2017-08-07 19:54:50 

 L0 raw data data in uV
                Ch1           Ch2           Ch3           Ch4           Ch5  \
count  59999.000000  59999.000000  59999.000000  59999.000000  59999.000000   
mean    5196.090108   8483.534711  13862.587896  -3698.596639   1387.191955   
std      281.873353    721.244344    269.087075     42.858447    227.039813   
min     4682.016000   7201.195000  13368.083000  -3851.986000    976.038000   
25%     4965.520000   7882.810000  13641.048500  -3727.627000   1179.051000   
50%     5167.627000   8436.394000  13841.344000  -3696.251000   1356.125000   
75%     5439.806000   9089.852000  14093.138000  -3666.735000   1590.490000   
max     5768.538000   9842.778000  14427.472000  -3585.911000   1877.498000   

                Ch6           Ch7           Ch8           Ch9          Ch10  \
count  59999.000000  59999.000000  59999.000000  59999.000000  59999.000000   
mean   -8180.259534   6456.797619   2607.779962  -6539.911683   7869.947988   
std      129.571760    124.451898    219.699893    103.691028    225.437868   
min    -8420.325000   6236.029000   2171.230000  -6710.673000   7432.413000   
25%    -8288.241000   6344.080000   2428.674000  -6624.174000   7707.262000   
50%    -8202.935000   6446.648000   2592.325000  -6570.292000   7860.375000   
75%    -8069.277000   6557.846000   2779.078000  -6466.818000   8063.984000   
max    -7867.957000   6728.792000   3067.922000  -6237.221000   8310.462000   

           ...               Ch29          Ch30          Ch31          Ch32  \
count      ...       59999.000000  59999.000000  59999.000000  59999.000000   
mean       ...        3546.136027   2809.130150   9888.086205   1922.718791   
std        ...         215.238847    622.597106    167.542136     92.569278   
min        ...        3222.942000   1632.642000   9617.282000   1730.871000   
25%        ...        3361.750000   2291.751000   9744.120000   1845.407000   
50%        ...        3478.956000   2820.349000   9850.455000   1906.776000   
75%        ...        3709.030000   3348.517000  10006.381000   1999.187000   
max        ...        4055.548000   3874.397000  10354.138000   2156.400000   

                 ax            ay           az  markers     unix_time  \
count  59999.000000  59999.000000  59999.00000  59999.0  5.999900e+04   
mean    -316.446774   8154.400990  -4132.20237      0.0  1.502129e+12   
std      159.261022    208.701005    223.12616      0.0  3.464073e+04   
min    -1108.000000      0.000000  -5275.00000      0.0  1.502128e+12   
25%     -411.000000   8061.000000  -4275.00000      0.0  1.502129e+12   
50%     -304.000000   8178.000000  -4128.00000      0.0  1.502129e+12   
75%     -225.000000   8257.000000  -4010.00000      0.0  1.502129e+12   
max      343.000000   9100.000000      0.00000      0.0  1.502129e+12   

                  t  
count  59999.000000  
mean      59.998000  
std       34.640727  
min        0.000000  
25%       29.999000  
50%       59.998000  
75%       89.997000  
max      119.996000  

[8 rows x 38 columns]
Plotting EEG channels after this pipeline:
1 . Object created: 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s
Plotting PSDs after this pipeline:
1 . Object created: 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s

Channel 1: Ch1, STD= 156.6 uV
Channel 2: Ch2, STD= 397.3 uV
Channel 3: Ch3, STD= 159.0 uV
Channel 4: Ch4, STD=  39.2 uV
Channel 5: Ch5, STD= 126.5 uV
Channel 6: Ch6, STD=  83.5 uV
Channel 7: Ch7, STD=  60.9 uV
Channel 8: Ch8, STD= 119.0 uV
Channel 9: Ch9, STD=  84.3 uV
Channel 10: Ch10, STD= 117.6 uV
Channel 11: Ch11, STD= 159.8 uV
Channel 12: Ch12, STD=  82.8 uV
Channel 13: Ch13, STD= 145.3 uV
Channel 14: Ch14, STD=  99.9 uV
Channel 15: Ch15, STD= 315.0 uV
Channel 16: Ch16, STD= 121.0 uV
Channel 17: Ch17, STD= 194.1 uV
Channel 18: Ch18, STD= 117.4 uV
Channel 19: Ch19, STD=  75.3 uV
Channel 20: Ch20, STD=  85.7 uV
Channel 21: Ch21, STD=  62.5 uV
Channel 22: Ch22, STD= 160.0 uV
Channel 23: Ch23, STD= 172.2 uV
Channel 24: Ch24, STD= 150.0 uV
Channel 25: Ch25, STD= 306.4 uV
Channel 26: Ch26, STD= 148.4 uV
Channel 27: Ch27, STD= 138.3 uV
Channel 28: Ch28, STD= 229.0 uV
Channel 29: Ch29, STD=  57.9 uV
Channel 30: Ch30, STD= 291.3 uV
Channel 31: Ch31, STD= 128.0 uV
Channel 32: Ch32, STD=  60.0 uV
--------QUALITY CHECK--------
Current log is:
['Object created: 2018-11-08 11:52']

Checking Quality of data with epoch length of  10.0  seconds.
Amplitude threshold (uV)=  75.0
STD limit of (uV)       =  30.0
Offset limit:  1.0
STD limit:  15.0
Channel Ch1   : Offset =    5.4 mV(*) / STD =  156.6 uV (*)
Channel Ch2   : Offset =    9.1 mV(*) / STD =  397.3 uV (*)
Channel Ch3   : Offset =   14.1 mV(*) / STD =  159.0 uV (*)
Channel Ch4   : Offset =   -3.7 mV(*) / STD =   39.2 uV (*)
Channel Ch5   : Offset =    1.6 mV(*) / STD =  126.5 uV (*)
Channel Ch6   : Offset =   -8.1 mV(*) / STD =   83.5 uV (*)
Channel Ch7   : Offset =    6.4 mV(*) / STD =   60.9 uV (*)
Channel Ch8   : Offset =    2.8 mV(*) / STD =  119.0 uV (*)
Channel Ch9   : Offset =   -6.5 mV(*) / STD =   84.3 uV (*)
Channel Ch10  : Offset =    8.1 mV(*) / STD =  117.6 uV (*)
Channel Ch11  : Offset =    6.8 mV(*) / STD =  159.8 uV (*)
Channel Ch12  : Offset =    7.8 mV(*) / STD =   82.8 uV (*)
Channel Ch13  : Offset =    6.9 mV(*) / STD =  145.3 uV (*)
Channel Ch14  : Offset =    3.7 mV(*) / STD =   99.9 uV (*)
Channel Ch15  : Offset =   -0.2 mV    / STD =  315.0 uV (*)
Channel Ch16  : Offset =    8.2 mV(*) / STD =  121.0 uV (*)
Channel Ch17  : Offset =   14.7 mV(*) / STD =  194.1 uV (*)
Channel Ch18  : Offset =    4.0 mV(*) / STD =  117.4 uV (*)
Channel Ch19  : Offset =    3.0 mV(*) / STD =   75.3 uV (*)
Channel Ch20  : Offset =    4.6 mV(*) / STD =   85.7 uV (*)
Channel Ch21  : Offset =   -0.2 mV    / STD =   62.5 uV (*)
Channel Ch22  : Offset =   13.5 mV(*) / STD =  160.0 uV (*)
Channel Ch23  : Offset =    4.5 mV(*) / STD =  172.2 uV (*)
Channel Ch24  : Offset =   23.7 mV(*) / STD =  150.0 uV (*)
Channel Ch25  : Offset =   -4.5 mV(*) / STD =  306.4 uV (*)
Channel Ch26  : Offset =   17.8 mV(*) / STD =  148.4 uV (*)
Channel Ch27  : Offset =   16.1 mV(*) / STD =  138.3 uV (*)
Channel Ch28  : Offset =   -2.6 mV(*) / STD =  229.0 uV (*)
Channel Ch29  : Offset =    3.4 mV(*) / STD =   57.9 uV (*)
Channel Ch30  : Offset =    3.3 mV(*) / STD =  291.3 uV (*)
Channel Ch31  : Offset =   10.0 mV(*) / STD =  128.0 uV (*)
Channel Ch32  : Offset =    2.0 mV(*) / STD =   60.0 uV (*)
Minutes of data: 1.0
Maxtimeskips:  5
 Found 48 bad channel-epochs out of 160, or 30.0%.
                

Bad channel-epochs per channel:
channel 0   /   Ch1, N= 0    (or 0.0%)
channel 1   /   Ch2, N= 0    (or 0.0%)
channel 2   /   Ch3, N= 1    (or 0.6%)
channel 3   /   Ch4, N= 0    (or 0.0%)
channel 4   /   Ch5, N= 0    (or 0.0%)
channel 5   /   Ch6, N= 0    (or 0.0%)
channel 6   /   Ch7, N= 0    (or 0.0%)
channel 7   /   Ch8, N= 0    (or 0.0%)
channel 8   /   Ch9, N= 0    (or 0.0%)
channel 9   /  Ch10, N= 3    (or 1.9%)
channel 10  /  Ch11, N= 1    (or 0.6%)
channel 11  /  Ch12, N= 2    (or 1.2%)
channel 12  /  Ch13, N= 5    (or 3.1%)
channel 13  /  Ch14, N= 5    (or 3.1%)
channel 14  /  Ch15, N= 1    (or 0.6%)
channel 15  /  Ch16, N= 4    (or 2.5%)
channel 16  /  Ch17, N= 5    (or 3.1%)
channel 17  /  Ch18, N= 0    (or 0.0%)
channel 18  /  Ch19, N= 1    (or 0.6%)
channel 19  /  Ch20, N= 0    (or 0.0%)
channel 20  /  Ch21, N= 0    (or 0.0%)
channel 21  /  Ch22, N= 1    (or 0.6%)
channel 22  /  Ch23, N= 1    (or 0.6%)
channel 23  /  Ch24, N= 5    (or 3.1%)
channel 24  /  Ch25, N= 1    (or 0.6%)
channel 25  /  Ch26, N= 1    (or 0.6%)
channel 26  /  Ch27, N= 1    (or 0.6%)
channel 27  /  Ch28, N= 0    (or 0.0%)
channel 28  /  Ch29, N= 4    (or 2.5%)
channel 29  /  Ch30, N= 1    (or 0.6%)
channel 30  /  Ch31, N= 5    (or 3.1%)
channel 31  /  Ch32, N= 0    (or 0.0%)

---------QC COMPLETE---------
---------PREPROCESSING---------
Pipeline:
['resetEEG', 'rereferenceData', 'detrendData', 'notch', 'bandpassfilter']
-------------------------------
Step 1 :  resetEEG  ...
-------------------------------
 
Step 2 :  rereferenceData  ...
Reference electrodes:  ['Cz']
Using average reference
-------------------------------
 
Step 3 :  detrendData  ...
Every  10.0  seconds
-------------------------------
 
Step 4 :  notch  ...
Power line frequency:  60.0
Notch Q-factor:  30.0
-------------------------------
 
Step 5 :  bandpassfilter  ...
Cutoff frequencies:  2.0 - 45.0
-------------------------------
 
Done: Updated Log:  ['Object created: 2018-11-08 11:52', 'EEG reset on 2018-11-08 11:52', 'Reference to: Cz on 2018-11-08 11:52', 'Detrend data every 10.0 s on 2018-11-08 11:52', 'Notch at 60.0 with Q=30.0 on 2018-11-08 11:52', 'Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52']
 

--------QUALITY CHECK--------
Current log is:
['Object created: 2018-11-08 11:52', 'EEG reset on 2018-11-08 11:52', 'Reference to: Cz on 2018-11-08 11:52', 'Detrend data every 10.0 s on 2018-11-08 11:52', 'Notch at 60.0 with Q=30.0 on 2018-11-08 11:52', 'Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52']

Checking Quality of data with epoch length of  10.0  seconds.
Amplitude threshold (uV)=  75.0
STD limit of (uV)       =  30.0
Offset limit:  1.0
STD limit:  15.0
Channel Ch1   : Offset =   -0.0 mV    / STD =    4.3 uV  
Channel Ch2   : Offset =   -0.0 mV    / STD =    3.8 uV  
Channel Ch3   : Offset =   -0.0 mV    / STD =    3.0 uV  
Channel Ch4   : Offset =   -0.0 mV    / STD =    3.3 uV  
Channel Ch5   : Offset =   -0.0 mV    / STD =    3.5 uV  
Channel Ch6   : Offset =   -0.0 mV    / STD =    4.1 uV  
Channel Ch7   : Offset =   -0.0 mV    / STD =    5.6 uV  
Channel Ch8   : Offset =   -0.0 mV    / STD =    4.7 uV  
Channel Ch9   : Offset =   -0.0 mV    / STD =    3.7 uV  
Channel Ch10  : Offset =    0.0 mV    / STD =    3.4 uV  
Channel Ch11  : Offset =   -0.0 mV    / STD =    3.3 uV  
Channel Ch12  : Offset =    0.0 mV    / STD =    3.6 uV  
Channel Ch13  : Offset =    0.0 mV    / STD =   11.7 uV  
Channel Ch14  : Offset =    0.0 mV    / STD =    3.8 uV  
Channel Ch15  : Offset =   -0.0 mV    / STD =    3.1 uV  
Channel Ch16  : Offset =    0.0 mV    / STD =    3.7 uV  
Channel Ch17  : Offset =    0.0 mV    / STD =   14.8 uV  
Channel Ch18  : Offset =   -0.0 mV    / STD =    3.5 uV  
Channel Ch19  : Offset =   -0.0 mV    / STD =    3.4 uV  
Channel Ch20  : Offset =   -0.0 mV    / STD =    4.6 uV  
Channel Ch21  : Offset =   -0.0 mV    / STD =    4.4 uV  
Channel Ch22  : Offset =    0.0 mV    / STD =    2.7 uV  
Channel Ch23  : Offset =    0.0 mV    / STD =    2.8 uV  
Channel Ch24  : Offset =    0.0 mV    / STD =    6.3 uV  
Channel Ch25  : Offset =   -0.0 mV    / STD =    3.7 uV  
Channel Ch26  : Offset =   -0.0 mV    / STD =    3.2 uV  
Channel Ch27  : Offset =   -0.0 mV    / STD =    3.0 uV  
Channel Ch28  : Offset =   -0.0 mV    / STD =    3.6 uV  
Channel Ch29  : Offset =    0.0 mV    / STD =    2.9 uV  
Channel Ch30  : Offset =   -0.0 mV    / STD =    3.0 uV  
Channel Ch31  : Offset =    0.0 mV    / STD =    7.0 uV  
Channel Ch32  : Offset =   -0.0 mV    / STD =    4.0 uV  
Minutes of data: 1.0
Maxtimeskips:  5
 Found 3 bad channel-epochs out of 160, or 1.9%.
                

Bad channel-epochs per channel:
channel 0   /   Ch1, N= 0    (or 0.0%)
channel 1   /   Ch2, N= 0    (or 0.0%)
channel 2   /   Ch3, N= 0    (or 0.0%)
channel 3   /   Ch4, N= 0    (or 0.0%)
channel 4   /   Ch5, N= 0    (or 0.0%)
channel 5   /   Ch6, N= 0    (or 0.0%)
channel 6   /   Ch7, N= 0    (or 0.0%)
channel 7   /   Ch8, N= 0    (or 0.0%)
channel 8   /   Ch9, N= 0    (or 0.0%)
channel 9   /  Ch10, N= 0    (or 0.0%)
channel 10  /  Ch11, N= 0    (or 0.0%)
channel 11  /  Ch12, N= 0    (or 0.0%)
channel 12  /  Ch13, N= 1    (or 0.6%)
channel 13  /  Ch14, N= 0    (or 0.0%)
channel 14  /  Ch15, N= 0    (or 0.0%)
channel 15  /  Ch16, N= 0    (or 0.0%)
channel 16  /  Ch17, N= 1    (or 0.6%)
channel 17  /  Ch18, N= 0    (or 0.0%)
channel 18  /  Ch19, N= 0    (or 0.0%)
channel 19  /  Ch20, N= 0    (or 0.0%)
channel 20  /  Ch21, N= 0    (or 0.0%)
channel 21  /  Ch22, N= 0    (or 0.0%)
channel 22  /  Ch23, N= 0    (or 0.0%)
channel 23  /  Ch24, N= 0    (or 0.0%)
channel 24  /  Ch25, N= 0    (or 0.0%)
channel 25  /  Ch26, N= 0    (or 0.0%)
channel 26  /  Ch27, N= 0    (or 0.0%)
channel 27  /  Ch28, N= 0    (or 0.0%)
channel 28  /  Ch29, N= 0    (or 0.0%)
channel 29  /  Ch30, N= 0    (or 0.0%)
channel 30  /  Ch31, N= 1    (or 0.6%)
channel 31  /  Ch32, N= 0    (or 0.0%)

---------QC COMPLETE---------
Plotting EEG channels after this pipeline:
1 . Object created: 2018-11-08 11:52
2 . EEG reset on 2018-11-08 11:52
3 . Reference to: Cz on 2018-11-08 11:52
4 . Detrend data every 10.0 s on 2018-11-08 11:52
5 . Notch at 60.0 with Q=30.0 on 2018-11-08 11:52
6 . Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s
Plotting PSDs after this pipeline:
1 . Object created: 2018-11-08 11:52
2 . EEG reset on 2018-11-08 11:52
3 . Reference to: Cz on 2018-11-08 11:52
4 . Detrend data every 10.0 s on 2018-11-08 11:52
5 . Notch at 60.0 with Q=30.0 on 2018-11-08 11:52
6 . Filter at fL= 2.0 and fH=45.0 on 2018-11-08 11:52

File:  C:\Users\roser.sanchez\Documents\Git\NEpy_v0.1\sampledata/20170807135459_W012_V1_EYC_noinfo_s

Channel 1: Ch1, STD=   4.3 uV
Channel 2: Ch2, STD=   3.8 uV
Channel 3: Ch3, STD=   3.0 uV
Channel 4: Ch4, STD=   3.3 uV
Channel 5: Ch5, STD=   3.5 uV
Channel 6: Ch6, STD=   4.1 uV
Channel 7: Ch7, STD=   5.6 uV
Channel 8: Ch8, STD=   4.7 uV
Channel 9: Ch9, STD=   3.7 uV
Channel 10: Ch10, STD=   3.4 uV
Channel 11: Ch11, STD=   3.3 uV
Channel 12: Ch12, STD=   3.6 uV
Channel 13: Ch13, STD=  11.7 uV
Channel 14: Ch14, STD=   3.8 uV
Channel 15: Ch15, STD=   3.1 uV
Channel 16: Ch16, STD=   3.7 uV
Channel 17: Ch17, STD=  14.8 uV
Channel 18: Ch18, STD=   3.5 uV
Channel 19: Ch19, STD=   3.4 uV
Channel 20: Ch20, STD=   4.6 uV
Channel 21: Ch21, STD=   4.4 uV
Channel 22: Ch22, STD=   2.7 uV
Channel 23: Ch23, STD=   2.8 uV
Channel 24: Ch24, STD=   6.3 uV
Channel 25: Ch25, STD=   3.7 uV
Channel 26: Ch26, STD=   3.2 uV
Channel 27: Ch27, STD=   3.0 uV
Channel 28: Ch28, STD=   3.6 uV
Channel 29: Ch29, STD=   2.9 uV
Channel 30: Ch30, STD=   3.0 uV
Channel 31: Ch31, STD=   7.0 uV
Channel 32: Ch32, STD=   4.0 uV

Batch job complete.
Processed files: ['C:\\Users\\roser.sanchez\\Documents\\Git\\NEpy_v0.1\\sampledata/20170807135459_W012_V1_EYC.easy.gz', 'C:\\Users\\roser.sanchez\\Documents\\Git\\NEpy_v0.1\\sampledata/20170807135459_W012_V1_EYC_noinfo_s.easy.gz']
Skipped files: []

Elapsed time (seconds): 38.765904664993286

END OF $batch$ DEMO

Thanks! I hope it was useful!

Enjoy Batch.